package com.example.coupon.service;

import com.example.coupon.entity.CouponTemplate;
import com.example.coupon.exception.CouponException;
import com.example.coupon.vo.CouponTemplateSDK;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 优惠券模版基础服务定义
 * @author wangbo
 * @description:
 * @date 2021/2/1811:47
 */
public interface ITemplateBaseService {

    /**
     * 根据优惠券模版ID获取优惠券模版信息
     * @param id 模版id
     * @return {@link CouponTemplate} 优惠券模版实体
     * @throws CouponException
     */
    CouponTemplate buildTemplateInfo(Integer id)throws CouponException;

    /**
     * 查询所有可用的优惠券模版
     * @return
     */
    List<CouponTemplateSDK> findAllUsableTemplate();

    /**
     * 获取模版ids到CouponTemplateSDK的映射
     * @param ids 模版ids
     * @return Map<Key:模版id,value: CouponTemplateSDK>
     */
    Map<Integer, CouponTemplateSDK> findIds2Template(Collection<Integer> ids);
}
